<template>
  <div class="">
    <ul class="tab">
      <li
        v-for="(item, index) in list"
        :class="{ active: flag == item.desc }"
        @click="change(item)"
        :key="index"
      >
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script>
import { ref, reactive, toRefs } from "vue";
import { useStore } from "vuex";
import { useRouter, useRoute } from "vue-router";
export default {
  props: {
    list: Array,
  },
  //tab切换的数据 数据在父组件
  setup(props, ctx) {
    const store = useStore();
    const router = useRouter();
    const route = useRoute();
    const data = reactive({
      flag: store.state.tab,
      //刷新tab切换还在 vuex里存的tab上
    });
    const change = (item) => {
      data.flag = item.desc;
      //flag保存 item的desc  用来判断激活的active样式

      store.commit("change", item);
      //把点击desc英文描述存在vuex里 这里存vuex的目的是为了实现刷新不变
      ctx.emit("homeChange", item.desc);
      // 点击切换的时候调用父组件的一个方法 想在父组件里请求数据
    };
    return { ...toRefs(data), change };
  },
};
</script>

<style lang="scss">
.tab {
  width: 100%;
  height: 40px;
  display: flex;
  li {
    flex: 1;
    color: rgb(142, 241, 28);
    text-align: center;
    line-height: 40px;
  }
  .active {
    background: rgb(171, 207, 171);
    color: bisque;
  }
}
</style>
